using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._DataManagementTools._Package
{
    /// <summary>
    /// <para>Create Map Tile Package</para>
    /// <para>Generates tiles from a map or basemap and packages the tiles to create a single compressed .tpk file.</para>
    /// <para>从地图或底图生成切片，并将切片打包以创建单个压缩的 .tpk 文件。</para>
    /// </summary>    
    [DisplayName("Create Map Tile Package")]
    public class CreateMapTilePackage : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public CreateMapTilePackage()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_map">
        /// <para>Input Map</para>
        /// <para>The map from which tiles will be generated and packaged.</para>
        /// <para>将从中生成和打包切片的地图。</para>
        /// </param>
        /// <param name="_service_type">
        /// <para>Package for ArcGIS Online | Bing Maps | Google Maps</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the tiling scheme will be generated from an existing map service or whether map tiles will be generated for ArcGIS Online, Bing Maps, and Google Maps.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The ArcGIS Online/Bing Maps/Google Maps tiling scheme will be used. This is the default.
        ///     <para>The ArcGIS Online/Bing Maps/Google Maps tiling scheme allows you to overlay your cache tiles with tiles from these online mapping services. ArcGIS Desktop includes this tiling scheme as a built-in option when loading a tiling scheme. When you choose this tiling scheme, the source map must use the WGS 1984 Web Mercator (Auxiliary Sphere) projected coordinate system.</para>
        ///     <para>The ArcGIS Online/Bing Maps/Google Maps tiling scheme is required if you'll be overlaying your package with ArcGIS Online, Bing Maps, or Google Maps. One advantage of the ArcGIS Online/Bing Maps/Google Maps tiling scheme is that it is widely known in the web mapping world, so your tiles will match those of other organizations that have used this tiling scheme. Even if you don't plan to overlay any of these well-known map services, you may choose the tiling scheme for its interoperability potential.</para>
        ///     <para>The ArcGIS Online/Bing Maps/Google Maps tiling scheme may contain scales that would be zoomed in too far to be of use to your map. Packaging for large scales can take up much time and disk storage space. For example, the largest scale in the tiling scheme is about 1:1,000. Packaging the entire continental United States at this scale can take weeks and require hundreds of gigabytes of storage. If you aren't prepared to package at this scale level, remove this scale level when you create the tile package.</para>
        ///     </bullet_item><para/>
        ///     <bullet_item>Unchecked—A tiling scheme from an existing map service will be used.
        ///     <para>Choose this option if your organization has created a tiling scheme for an existing service on your server and you want to match it. Matching tiling schemes ensures that your tiles will overlay correctly in your ArcGIS Runtime application.</para>
        ///     <para>If you choose this option, use the same coordinate system for your source map as the map with the tiling scheme you're importing.</para>
        ///     </bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是从现有地图服务生成切片方案，还是为 ArcGIS Online、Bing 地图和 Google 地图生成地图切片。</para>
        ///   <bulletList>
        /// <bullet_item>选中 - 将使用 ArcGIS Online/Bing 地图/Google 地图切片方案。这是默认设置。
        ///     <para>ArcGIS Online/Bing 地图/Google 地图切片方案允许您使用这些在线制图服务中的切片叠加缓存切片。加载切片方案时，ArcGIS Desktop 会将此切片方案作为内置选项包含在内。选择此切片方案时，源地图必须使用 WGS 1984 Web 墨卡托（辅助球体）投影坐标系。</para>
        ///     <para>如果要使用 ArcGIS Online、Bing 地图或 Google 地图叠加包，则需要使用 ArcGIS Online/Bing 地图/Google 地图切片方案。ArcGIS Online/Bing 地图/Google 地图切片方案的一个优点是它在 Web 制图领域广为人知，因此您的切片将与使用此切片方案的其他组织的切片相匹配。即使您不打算叠加这些知名地图服务中的任何一个，您也可以选择切片方案，因为它具有互操作性潜力。</para>
        ///     <para>ArcGIS Online/Bing 地图/Google 地图切片方案可能包含比例尺，这些比例放大得太远而无法用于地图。大规模的打包可能会占用大量时间和磁盘存储空间。例如，切片方案中的最大比例约为 1：1,000。以这种规模打包整个美国大陆可能需要数周时间，并且需要数百 GB 的存储空间。如果不准备在此缩放级别打包，请在创建切片包时移除此缩放级别。</para>
        ///     </bullet_item><para/>
        /// <bullet_item>未选中 - 将使用现有地图服务中的切片方案。
        ///     <para>如果您的组织已为服务器上的现有服务创建切片方案，并且您希望对其进行匹配，请选择此选项。匹配切片方案可确保切片在 ArcGIS Runtime 应用程序中正确叠加。</para>
        ///     <para>如果选择此选项，则源地图的坐标系与导入切片方案的地图相同。</para>
        ///     </bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// </param>
        /// <param name="_output_file">
        /// <para>Output File</para>
        /// <para>The output map tile package.</para>
        /// <para>输出地图切片包。</para>
        /// </param>
        /// <param name="_format_type">
        /// <para>Tiling Format</para>
        /// <para><xdoc>
        ///   <para>Specifies the format of the generated tiles.</para>
        ///   <bulletList>
        ///     <bullet_item>PNG—Use PNG to automatically select the correct format (PNG 8, PNG 24, or PNG 32) based on the specified Level of Detail. This is the default.</bullet_item><para/>
        ///     <bullet_item>PNG 8 bit—Use PNG 8 for overlay services that need to have a transparent background, such as roads and boundaries. PNG 8 creates tiles of very small size on disk with no loss of information. Do not use PNG 8 if your map contains more than 256 colors. Imagery, hillshades, gradient fills, transparency, and antialiasing can easily push your map over 256 colors. Even symbols such as highway shields may have subtle antialiasing around the edges that unexpectedly adds colors to your map.</bullet_item><para/>
        ///     <bullet_item>PNG 24 bit—Use PNG 24 for overlay services, such as roads and boundaries, that have more than 256 colors (if fewer than 256 colors, use PNG 8).</bullet_item><para/>
        ///     <bullet_item>PNG 32 bit—Use PNG 32 for overlay services, such as roads and boundaries, that have more than 256 colors. PNG 32 is an especially good choice for overlay services that have antialiasing enabled on lines or text. PNG 32 creates larger tiles on disk than PNG 24.</bullet_item><para/>
        ///     <bullet_item>JPEG—Use this format for basemap services that have large color variation and do not need to have a transparent background. For example, raster imagery and very detailed vector basemaps tend to work well with JPEG. JPEG is a lossy image format. It attempts to selectively remove data without affecting the appearance of the image. This can cause very small tile sizes on disk, but if your map contains vector line work or labels, it may produce too much noise or blurry area around the lines. If this is the case, you can attempt to raise the compression value from the default of 75. A higher value, such as 90, may balance an acceptable quality of line work with the small tile size benefit of the JPEG.You decide what image quality you consider acceptable. If you are willing to accept a minor amount of noise in the images, you may save large amounts of disk space by choosing JPEG. The smaller tile size also means the application can download the tiles faster.</bullet_item><para/>
        ///     <bullet_item>Mixed—A mixed package uses JPEG in the center of the package and PNG 32 on the edge of the package. Use the mixed mode when you want to cleanly overlay raster packages on other layers.When a mixed package is created, PNG 32 tiles are created anywhere that transparency is detected (in other words, anywhere that the map background is visible). The rest of the tiles are built using JPEG. This keeps the average file size down while providing a clean overlay on top of other packages. If you do not use the mixed mode package in this scenario, you will see a nontransparent collar around the periphery of your image where it overlaps the other package.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定生成的切片的格式。</para>
        ///   <bulletList>
        ///     <bullet_item>PNG - 使用 PNG 根据指定的详细级别自动选择正确的格式（PNG 8、PNG 24 或 PNG 32）。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>PNG 8 位 - 将 PNG 8 用于需要具有透明背景（如道路和边界）的叠加服务。PNG 8 在磁盘上创建非常小的切片，而不会丢失信息。如果地图包含的颜色超过 256 种，请勿使用 PNG 8。影像、山体阴影、渐变填充、透明度和抗锯齿可以轻松地将地图推高到 256 种颜色上。即使是高速公路盾牌等符号，边缘也可能有微妙的抗锯齿效果，从而意外地为地图添加颜色。</bullet_item><para/>
        ///     <bullet_item>PNG 24 位 - 将 PNG 24 用于具有超过 256 种颜色的叠加服务，例如道路和边界（如果颜色少于 256 种，则使用 PNG 8）。</bullet_item><para/>
        ///     <bullet_item>PNG 32 位 - 将 PNG 32 用于具有 256 种以上颜色的叠加服务，例如道路和边界。PNG 32 对于在行或文本上启用了抗锯齿的叠加服务来说，是一个特别好的选择。PNG 32 在磁盘上创建比 PNG 24 更大的切片。</bullet_item><para/>
        ///     <bullet_item>JPEG - 对于颜色变化较大且不需要透明背景的底图服务，请使用此格式。例如，栅格影像和非常详细的矢量底图往往适用于 JPEG。JPEG 是一种有损图像格式。它尝试有选择地删除数据，而不会影响图像的外观。这可能会导致磁盘上的切片大小非常小，但如果地图包含矢量线或标注，则可能会产生过多的噪点或线条周围的模糊区域。如果是这种情况，您可以尝试将压缩值从默认值 75 提高。较高的值（如 90）可以在可接受的线条质量与 JPEG 的小图块尺寸优势之间取得平衡。您可以决定您认为可以接受的图像质量。如果您愿意接受图像中的少量噪点，则可以通过选择 JPEG 来节省大量磁盘空间。较小的磁贴大小也意味着应用程序可以更快地下载磁贴。</bullet_item><para/>
        ///     <bullet_item>混合 - 混合包在包的中心使用 JPEG，在包的边缘使用 PNG 32。当您想要在其他图层上干净地叠加栅格包时，请使用混合模式。创建混合包时，将在检测到透明度的任何位置（即地图背景可见的任何位置）创建 PNG 32 切片。其余图块使用 JPEG 构建。这样可以降低平均文件大小，同时在其他包之上提供干净的覆盖层。如果在此方案中不使用混合模式包，则在映像的外围看到一个不透明的项圈，该项圈与其他包重叠。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// </param>
        /// <param name="_level_of_detail">
        /// <para>Maximum Level Of Detail</para>
        /// <para><xdoc>
        ///   <para>The maximum scale at which tiles will be generated for the package. The default is 1. Possible values are 1 through 24.</para>
        ///   <para>Larger values reflect larger scales that show more detail but take more storage space, while smaller values reflect smaller scales that show less detail and take less storage space.</para>
        ///   <para>This value must be greater than or equal to Minimum Level Of Detail.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>为包生成切片的最大比例。默认值为 1。可能的值为 1 到 24。</para>
        ///   <para>较大的值表示显示更多细节但占用更多存储空间的较大比例，而较小的值表示显示较少细节且占用较少存储空间的较小比例。</para>
        ///   <para>此值必须大于或等于“最小细节级别”。</para>
        /// </xdoc></para>
        /// </param>
        public CreateMapTilePackage(object _in_map, _service_type_value _service_type, object _output_file, _format_type_value _format_type, long _level_of_detail)
        {
            this._in_map = _in_map;
            this._service_type = _service_type;
            this._output_file = _output_file;
            this._format_type = _format_type;
            this._level_of_detail = _level_of_detail;
        }
        public override string ToolboxName => "Data Management Tools";

        public override string ToolName => "Create Map Tile Package";

        public override string CallName => "management.CreateMapTilePackage";

        public override List<string> AcceptEnvironments => ["parallelProcessingFactor", "workspace"];

        public override object[] ParameterInfo => [_in_map, _service_type.GetGPValue(), _output_file, _format_type.GetGPValue(), _level_of_detail, _service_file, _summary, _tags, _extent, _compression_quality, _package_type.GetGPValue(), _min_level_of_detail];

        /// <summary>
        /// <para>Input Map</para>
        /// <para>The map from which tiles will be generated and packaged.</para>
        /// <para>将从中生成和打包切片的地图。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Map")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_map { get; set; }


        /// <summary>
        /// <para>Package for ArcGIS Online | Bing Maps | Google Maps</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the tiling scheme will be generated from an existing map service or whether map tiles will be generated for ArcGIS Online, Bing Maps, and Google Maps.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The ArcGIS Online/Bing Maps/Google Maps tiling scheme will be used. This is the default.
        ///     <para>The ArcGIS Online/Bing Maps/Google Maps tiling scheme allows you to overlay your cache tiles with tiles from these online mapping services. ArcGIS Desktop includes this tiling scheme as a built-in option when loading a tiling scheme. When you choose this tiling scheme, the source map must use the WGS 1984 Web Mercator (Auxiliary Sphere) projected coordinate system.</para>
        ///     <para>The ArcGIS Online/Bing Maps/Google Maps tiling scheme is required if you'll be overlaying your package with ArcGIS Online, Bing Maps, or Google Maps. One advantage of the ArcGIS Online/Bing Maps/Google Maps tiling scheme is that it is widely known in the web mapping world, so your tiles will match those of other organizations that have used this tiling scheme. Even if you don't plan to overlay any of these well-known map services, you may choose the tiling scheme for its interoperability potential.</para>
        ///     <para>The ArcGIS Online/Bing Maps/Google Maps tiling scheme may contain scales that would be zoomed in too far to be of use to your map. Packaging for large scales can take up much time and disk storage space. For example, the largest scale in the tiling scheme is about 1:1,000. Packaging the entire continental United States at this scale can take weeks and require hundreds of gigabytes of storage. If you aren't prepared to package at this scale level, remove this scale level when you create the tile package.</para>
        ///     </bullet_item><para/>
        ///     <bullet_item>Unchecked—A tiling scheme from an existing map service will be used.
        ///     <para>Choose this option if your organization has created a tiling scheme for an existing service on your server and you want to match it. Matching tiling schemes ensures that your tiles will overlay correctly in your ArcGIS Runtime application.</para>
        ///     <para>If you choose this option, use the same coordinate system for your source map as the map with the tiling scheme you're importing.</para>
        ///     </bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是从现有地图服务生成切片方案，还是为 ArcGIS Online、Bing 地图和 Google 地图生成地图切片。</para>
        ///   <bulletList>
        /// <bullet_item>选中 - 将使用 ArcGIS Online/Bing 地图/Google 地图切片方案。这是默认设置。
        ///     <para>ArcGIS Online/Bing 地图/Google 地图切片方案允许您使用这些在线制图服务中的切片叠加缓存切片。加载切片方案时，ArcGIS Desktop 会将此切片方案作为内置选项包含在内。选择此切片方案时，源地图必须使用 WGS 1984 Web 墨卡托（辅助球体）投影坐标系。</para>
        ///     <para>如果要使用 ArcGIS Online、Bing 地图或 Google 地图叠加包，则需要使用 ArcGIS Online/Bing 地图/Google 地图切片方案。ArcGIS Online/Bing 地图/Google 地图切片方案的一个优点是它在 Web 制图领域广为人知，因此您的切片将与使用此切片方案的其他组织的切片相匹配。即使您不打算叠加这些知名地图服务中的任何一个，您也可以选择切片方案，因为它具有互操作性潜力。</para>
        ///     <para>ArcGIS Online/Bing 地图/Google 地图切片方案可能包含比例尺，这些比例放大得太远而无法用于地图。大规模的打包可能会占用大量时间和磁盘存储空间。例如，切片方案中的最大比例约为 1：1,000。以这种规模打包整个美国大陆可能需要数周时间，并且需要数百 GB 的存储空间。如果不准备在此缩放级别打包，请在创建切片包时移除此缩放级别。</para>
        ///     </bullet_item><para/>
        /// <bullet_item>未选中 - 将使用现有地图服务中的切片方案。
        ///     <para>如果您的组织已为服务器上的现有服务创建切片方案，并且您希望对其进行匹配，请选择此选项。匹配切片方案可确保切片在 ArcGIS Runtime 应用程序中正确叠加。</para>
        ///     <para>如果选择此选项，则源地图的坐标系与导入切片方案的地图相同。</para>
        ///     </bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Package for ArcGIS Online | Bing Maps | Google Maps")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public _service_type_value _service_type { get; set; }

        public enum _service_type_value
        {
            /// <summary>
            /// <para>ONLINE</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("ONLINE")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>EXISTING</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("EXISTING")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Output File</para>
        /// <para>The output map tile package.</para>
        /// <para>输出地图切片包。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output File")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _output_file { get; set; }


        /// <summary>
        /// <para>Tiling Format</para>
        /// <para><xdoc>
        ///   <para>Specifies the format of the generated tiles.</para>
        ///   <bulletList>
        ///     <bullet_item>PNG—Use PNG to automatically select the correct format (PNG 8, PNG 24, or PNG 32) based on the specified Level of Detail. This is the default.</bullet_item><para/>
        ///     <bullet_item>PNG 8 bit—Use PNG 8 for overlay services that need to have a transparent background, such as roads and boundaries. PNG 8 creates tiles of very small size on disk with no loss of information. Do not use PNG 8 if your map contains more than 256 colors. Imagery, hillshades, gradient fills, transparency, and antialiasing can easily push your map over 256 colors. Even symbols such as highway shields may have subtle antialiasing around the edges that unexpectedly adds colors to your map.</bullet_item><para/>
        ///     <bullet_item>PNG 24 bit—Use PNG 24 for overlay services, such as roads and boundaries, that have more than 256 colors (if fewer than 256 colors, use PNG 8).</bullet_item><para/>
        ///     <bullet_item>PNG 32 bit—Use PNG 32 for overlay services, such as roads and boundaries, that have more than 256 colors. PNG 32 is an especially good choice for overlay services that have antialiasing enabled on lines or text. PNG 32 creates larger tiles on disk than PNG 24.</bullet_item><para/>
        ///     <bullet_item>JPEG—Use this format for basemap services that have large color variation and do not need to have a transparent background. For example, raster imagery and very detailed vector basemaps tend to work well with JPEG. JPEG is a lossy image format. It attempts to selectively remove data without affecting the appearance of the image. This can cause very small tile sizes on disk, but if your map contains vector line work or labels, it may produce too much noise or blurry area around the lines. If this is the case, you can attempt to raise the compression value from the default of 75. A higher value, such as 90, may balance an acceptable quality of line work with the small tile size benefit of the JPEG.You decide what image quality you consider acceptable. If you are willing to accept a minor amount of noise in the images, you may save large amounts of disk space by choosing JPEG. The smaller tile size also means the application can download the tiles faster.</bullet_item><para/>
        ///     <bullet_item>Mixed—A mixed package uses JPEG in the center of the package and PNG 32 on the edge of the package. Use the mixed mode when you want to cleanly overlay raster packages on other layers.When a mixed package is created, PNG 32 tiles are created anywhere that transparency is detected (in other words, anywhere that the map background is visible). The rest of the tiles are built using JPEG. This keeps the average file size down while providing a clean overlay on top of other packages. If you do not use the mixed mode package in this scenario, you will see a nontransparent collar around the periphery of your image where it overlaps the other package.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定生成的切片的格式。</para>
        ///   <bulletList>
        ///     <bullet_item>PNG - 使用 PNG 根据指定的详细级别自动选择正确的格式（PNG 8、PNG 24 或 PNG 32）。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>PNG 8 位 - 将 PNG 8 用于需要具有透明背景（如道路和边界）的叠加服务。PNG 8 在磁盘上创建非常小的切片，而不会丢失信息。如果地图包含的颜色超过 256 种，请勿使用 PNG 8。影像、山体阴影、渐变填充、透明度和抗锯齿可以轻松地将地图推高到 256 种颜色上。即使是高速公路盾牌等符号，边缘也可能有微妙的抗锯齿效果，从而意外地为地图添加颜色。</bullet_item><para/>
        ///     <bullet_item>PNG 24 位 - 将 PNG 24 用于具有超过 256 种颜色的叠加服务，例如道路和边界（如果颜色少于 256 种，则使用 PNG 8）。</bullet_item><para/>
        ///     <bullet_item>PNG 32 位 - 将 PNG 32 用于具有 256 种以上颜色的叠加服务，例如道路和边界。PNG 32 对于在行或文本上启用了抗锯齿的叠加服务来说，是一个特别好的选择。PNG 32 在磁盘上创建比 PNG 24 更大的切片。</bullet_item><para/>
        ///     <bullet_item>JPEG - 对于颜色变化较大且不需要透明背景的底图服务，请使用此格式。例如，栅格影像和非常详细的矢量底图往往适用于 JPEG。JPEG 是一种有损图像格式。它尝试有选择地删除数据，而不会影响图像的外观。这可能会导致磁盘上的切片大小非常小，但如果地图包含矢量线或标注，则可能会产生过多的噪点或线条周围的模糊区域。如果是这种情况，您可以尝试将压缩值从默认值 75 提高。较高的值（如 90）可以在可接受的线条质量与 JPEG 的小图块尺寸优势之间取得平衡。您可以决定您认为可以接受的图像质量。如果您愿意接受图像中的少量噪点，则可以通过选择 JPEG 来节省大量磁盘空间。较小的磁贴大小也意味着应用程序可以更快地下载磁贴。</bullet_item><para/>
        ///     <bullet_item>混合 - 混合包在包的中心使用 JPEG，在包的边缘使用 PNG 32。当您想要在其他图层上干净地叠加栅格包时，请使用混合模式。创建混合包时，将在检测到透明度的任何位置（即地图背景可见的任何位置）创建 PNG 32 切片。其余图块使用 JPEG 构建。这样可以降低平均文件大小，同时在其他包之上提供干净的覆盖层。如果在此方案中不使用混合模式包，则在映像的外围看到一个不透明的项圈，该项圈与其他包重叠。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Tiling Format")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public _format_type_value _format_type { get; set; }

        public enum _format_type_value
        {
            /// <summary>
            /// <para>PNG</para>
            /// <para>PNG—Use PNG to automatically select the correct format (PNG 8, PNG 24, or PNG 32) based on the specified Level of Detail. This is the default.</para>
            /// <para>PNG - 使用 PNG 根据指定的详细级别自动选择正确的格式（PNG 8、PNG 24 或 PNG 32）。这是默认设置。</para>
            /// </summary>
            [Description("PNG")]
            [GPEnumValue("PNG")]
            _PNG,

            /// <summary>
            /// <para>PNG 8 bit</para>
            /// <para>PNG 8 bit—Use PNG 8 for overlay services that need to have a transparent background, such as roads and boundaries. PNG 8 creates tiles of very small size on disk with no loss of information. Do not use PNG 8 if your map contains more than 256 colors. Imagery, hillshades, gradient fills, transparency, and antialiasing can easily push your map over 256 colors. Even symbols such as highway shields may have subtle antialiasing around the edges that unexpectedly adds colors to your map.</para>
            /// <para>PNG 8 位 - 将 PNG 8 用于需要具有透明背景（如道路和边界）的叠加服务。PNG 8 在磁盘上创建非常小的切片，而不会丢失信息。如果地图包含的颜色超过 256 种，请勿使用 PNG 8。影像、山体阴影、渐变填充、透明度和抗锯齿可以轻松地将地图推高到 256 种颜色上。即使是高速公路盾牌等符号，边缘也可能有微妙的抗锯齿效果，从而意外地为地图添加颜色。</para>
            /// </summary>
            [Description("PNG 8 bit")]
            [GPEnumValue("PNG8")]
            _PNG8,

            /// <summary>
            /// <para>PNG 24 bit</para>
            /// <para>PNG 24 bit—Use PNG 24 for overlay services, such as roads and boundaries, that have more than 256 colors (if fewer than 256 colors, use PNG 8).</para>
            /// <para>PNG 24 位 - 将 PNG 24 用于具有超过 256 种颜色的叠加服务，例如道路和边界（如果颜色少于 256 种，则使用 PNG 8）。</para>
            /// </summary>
            [Description("PNG 24 bit")]
            [GPEnumValue("PNG24")]
            _PNG24,

            /// <summary>
            /// <para>PNG 32 bit</para>
            /// <para>PNG 32 bit—Use PNG 32 for overlay services, such as roads and boundaries, that have more than 256 colors. PNG 32 is an especially good choice for overlay services that have antialiasing enabled on lines or text. PNG 32 creates larger tiles on disk than PNG 24.</para>
            /// <para>PNG 32 位 - 将 PNG 32 用于具有 256 种以上颜色的叠加服务，例如道路和边界。PNG 32 对于在行或文本上启用了抗锯齿的叠加服务来说，是一个特别好的选择。PNG 32 在磁盘上创建比 PNG 24 更大的切片。</para>
            /// </summary>
            [Description("PNG 32 bit")]
            [GPEnumValue("PNG32")]
            _PNG32,

            /// <summary>
            /// <para>JPEG</para>
            /// <para>JPEG—Use this format for basemap services that have large color variation and do not need to have a transparent background. For example, raster imagery and very detailed vector basemaps tend to work well with JPEG. JPEG is a lossy image format. It attempts to selectively remove data without affecting the appearance of the image. This can cause very small tile sizes on disk, but if your map contains vector line work or labels, it may produce too much noise or blurry area around the lines. If this is the case, you can attempt to raise the compression value from the default of 75. A higher value, such as 90, may balance an acceptable quality of line work with the small tile size benefit of the JPEG.You decide what image quality you consider acceptable. If you are willing to accept a minor amount of noise in the images, you may save large amounts of disk space by choosing JPEG. The smaller tile size also means the application can download the tiles faster.</para>
            /// <para>JPEG - 对于颜色变化较大且不需要透明背景的底图服务，请使用此格式。例如，栅格影像和非常详细的矢量底图往往适用于 JPEG。JPEG 是一种有损图像格式。它尝试有选择地删除数据，而不会影响图像的外观。这可能会导致磁盘上的切片大小非常小，但如果地图包含矢量线或标注，则可能会产生过多的噪点或线条周围的模糊区域。如果是这种情况，您可以尝试将压缩值从默认值 75 提高。较高的值（如 90）可以在可接受的线条质量与 JPEG 的小图块尺寸优势之间取得平衡。您可以决定您认为可以接受的图像质量。如果您愿意接受图像中的少量噪点，则可以通过选择 JPEG 来节省大量磁盘空间。较小的磁贴大小也意味着应用程序可以更快地下载磁贴。</para>
            /// </summary>
            [Description("JPEG")]
            [GPEnumValue("JPEG")]
            _JPEG,

            /// <summary>
            /// <para>Mixed</para>
            /// <para>Mixed—A mixed package uses JPEG in the center of the package and PNG 32 on the edge of the package. Use the mixed mode when you want to cleanly overlay raster packages on other layers.When a mixed package is created, PNG 32 tiles are created anywhere that transparency is detected (in other words, anywhere that the map background is visible). The rest of the tiles are built using JPEG. This keeps the average file size down while providing a clean overlay on top of other packages. If you do not use the mixed mode package in this scenario, you will see a nontransparent collar around the periphery of your image where it overlaps the other package.</para>
            /// <para>混合 - 混合包在包的中心使用 JPEG，在包的边缘使用 PNG 32。当您想要在其他图层上干净地叠加栅格包时，请使用混合模式。创建混合包时，将在检测到透明度的任何位置（即地图背景可见的任何位置）创建 PNG 32 切片。其余图块使用 JPEG 构建。这样可以降低平均文件大小，同时在其他包之上提供干净的覆盖层。如果在此方案中不使用混合模式包，则在映像的外围看到一个不透明的项圈，该项圈与其他包重叠。</para>
            /// </summary>
            [Description("Mixed")]
            [GPEnumValue("MIXED")]
            _MIXED,

        }

        /// <summary>
        /// <para>Maximum Level Of Detail</para>
        /// <para><xdoc>
        ///   <para>The maximum scale at which tiles will be generated for the package. The default is 1. Possible values are 1 through 24.</para>
        ///   <para>Larger values reflect larger scales that show more detail but take more storage space, while smaller values reflect smaller scales that show less detail and take less storage space.</para>
        ///   <para>This value must be greater than or equal to Minimum Level Of Detail.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>为包生成切片的最大比例。默认值为 1。可能的值为 1 到 24。</para>
        ///   <para>较大的值表示显示更多细节但占用更多存储空间的较大比例，而较小的值表示显示较少细节且占用较少存储空间的较小比例。</para>
        ///   <para>此值必须大于或等于“最小细节级别”。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Maximum Level Of Detail")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public long _level_of_detail { get; set; }


        /// <summary>
        /// <para>Service</para>
        /// <para>The name of the map service or the XML files to use for the tiling scheme. This parameter is required only when the Package for ArcGIS Online | Bing Maps | Google Maps parameter is unchecked.</para>
        /// <para>要用于切片方案的地图服务或 XML 文件的名称。仅当 Package for ArcGIS Online |必应地图 |Google 地图参数未选中。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Service")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _service_file { get; set; } = null;


        /// <summary>
        /// <para>Summary</para>
        /// <para>Adds summary information to the properties of the package.</para>
        /// <para>将摘要信息添加到包的属性中。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Summary")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _summary { get; set; } = null;


        /// <summary>
        /// <para>Tags</para>
        /// <para>Adds tag information to the properties of the package. Multiple tags can be added, separated by a comma or semicolon.</para>
        /// <para>将标记信息添加到包的属性中。可以添加多个标签，用逗号或分号分隔。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Tags")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _tags { get; set; } = null;


        /// <summary>
        /// <para>Extent</para>
        /// <para><xdoc>
        ///   <para>Specifies the extent that will be used to select or clip features.</para>
        ///   <bulletList>
        ///     <bullet_item>Default—The extent will be based on the maximum extent of all participating inputs. This is the default.</bullet_item><para/>
        ///     <bullet_item>Union of Inputs—The extent will be based on the maximum extent of all inputs.</bullet_item><para/>
        ///     <bullet_item>Intersection of Inputs—The extent will be based on the minimum area common to all inputs.</bullet_item><para/>
        ///     <bullet_item>Current Display Extent—The extent is equal to the visible display. The option is not available when there is no active map.</bullet_item><para/>
        ///     <bullet_item>As Specified Below—The extent will be based on the minimum and maximum extent values specified.</bullet_item><para/>
        ///     <bullet_item>Browse—The extent will be based on an existing dataset.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定将用于选择或裁剪要素的范围。</para>
        ///   <bulletList>
        ///     <bullet_item>默认值 - 范围将基于所有参与输入的最大范围。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>输入并集 - 范围将基于所有输入的最大范围。</bullet_item><para/>
        ///     <bullet_item>输入交点 - 范围将基于所有输入共有的最小面积。</bullet_item><para/>
        ///     <bullet_item>当前显示范围 - 范围等于可见显示。当没有活动地图时，该选项不可用。</bullet_item><para/>
        ///     <bullet_item>如下所述 - 范围将基于指定的最小和最大范围值。</bullet_item><para/>
        ///     <bullet_item>浏览 - 范围将基于现有数据集。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Extent")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _extent { get; set; } = null;


        /// <summary>
        /// <para>Compression Quality</para>
        /// <para><xdoc>
        ///   <para>A value between 1 and 100 for the JPEG compression quality. The default value is 75 for JPEG tile format and zero for other formats.</para>
        ///   <para>Compression is supported only for JPEG and MIXED format. Choosing a higher value will result in a larger file size with a higher-quality image. Choosing a lower value will result in a smaller file size with a lower-quality image.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>JPEG 压缩质量介于 1 和 100 之间的值。JPEG 图块格式的默认值为 75，其他格式的默认值为 0。</para>
        ///   <para>压缩仅支持 JPEG 和 MIXED 格式。选择更高的值将导致更大的文件大小和更高质量的图像。选择较低的值将导致文件大小变小，图像质量较低。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Compression Quality")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long _compression_quality { get; set; } = 75;


        /// <summary>
        /// <para>Package type</para>
        /// <para><xdoc>
        ///   <para>Specifies the type of tile package that will be created.</para>
        ///   <bulletList>
        ///     <bullet_item>tpk—Tiles are stored using Compact storage format. It is supported across the ArcGIS platform.</bullet_item><para/>
        ///     <bullet_item>tpkx—Tiles are stored using CompactV2 storage format, which provides better performance on network shares and cloud store directories. This improved and simplified package structure type is supported by newer versions of ArcGIS products such as ArcGIS Online 7.1, ArcGIS Enterprise 10.7, and ArcGIS Runtime 100.5. This is the default.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定将创建的切片包的类型。</para>
        ///   <bulletList>
        ///     <bullet_item>tpk - 切片使用紧凑存储格式进行存储。它在整个 ArcGIS 平台中都受支持。</bullet_item><para/>
        ///     <bullet_item>tpkx - 切片使用 CompactV2 存储格式进行存储，可在网络共享和云存储目录上提供更好的性能。较新版本的 ArcGIS 产品（例如 ArcGIS Online 7.1、ArcGIS Enterprise 10.7 和 ArcGIS Runtime 100.5）支持这种改进和简化的包结构类型。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Package type")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _package_type_value _package_type { get; set; } = _package_type_value._tpkx;

        public enum _package_type_value
        {
            /// <summary>
            /// <para>tpk</para>
            /// <para>tpk—Tiles are stored using Compact storage format. It is supported across the ArcGIS platform.</para>
            /// <para>tpk - 切片使用紧凑存储格式进行存储。它在整个 ArcGIS 平台中都受支持。</para>
            /// </summary>
            [Description("tpk")]
            [GPEnumValue("tpk")]
            _tpk,

            /// <summary>
            /// <para>tpkx</para>
            /// <para>tpkx—Tiles are stored using CompactV2 storage format, which provides better performance on network shares and cloud store directories. This improved and simplified package structure type is supported by newer versions of ArcGIS products such as ArcGIS Online 7.1, ArcGIS Enterprise 10.7, and ArcGIS Runtime 100.5. This is the default.</para>
            /// <para>tpkx - 切片使用 CompactV2 存储格式进行存储，可在网络共享和云存储目录上提供更好的性能。较新版本的 ArcGIS 产品（例如 ArcGIS Online 7.1、ArcGIS Enterprise 10.7 和 ArcGIS Runtime 100.5）支持这种改进和简化的包结构类型。这是默认设置。</para>
            /// </summary>
            [Description("tpkx")]
            [GPEnumValue("tpkx")]
            _tpkx,

        }

        /// <summary>
        /// <para>Minimum Level Of Detail</para>
        /// <para><xdoc>
        ///   <para>The minimum scale at which tiles will be generated for the package. The default is 1. Possible values are 1 through 24.</para>
        ///   <para>Larger values reflect larger scales that show more detail but take more storage space, while smaller values reflect smaller scales that show less detail and take less storage space.</para>
        ///   <para>This value must be less than or equal to Maximum Level Of Detail.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>为包生成切片的最小比例。默认值为 1。可能的值为 1 到 24。</para>
        ///   <para>较大的值表示显示更多细节但占用更多存储空间的较大比例，而较小的值表示显示较少细节且占用较少存储空间的较小比例。</para>
        ///   <para>此值必须小于或等于“最大细节级别”。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Minimum Level Of Detail")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long _min_level_of_detail { get; set; } = 0;


        public CreateMapTilePackage SetEnv(object parallelProcessingFactor = null, object workspace = null)
        {
            base.SetEnv(parallelProcessingFactor: parallelProcessingFactor, workspace: workspace);
            return this;
        }

    }

}